<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!--  第一步引入 vue.js -->
    <script src="js/vue.js"></script>
    <style>

        /**
        transition 没有name 的话，默认的是 v- 前缀
        这v-enter 表示的是进入之前，元素的起始状态 ，此时还没有开始进入，
        v-leave-to 表示的是 动画开始之后，离开的 终止状态 ，表示此时动画已经结束了
         */
        .v-enter {

        }

        .v-leave-to {
            opacity: 0;
        }

        /**
        v-enter-active入场动画时间段
        v-leave-active 离场时间段
         */
        .v-enter-active {

        }

        .v-leave-active {
            transition: all 0.4s ease;
        }
        .r{
            height: 100px;
            width: 100px;
            background-color: red;
        }
    </style>

    <style>
        /* 可以设置不同的进入和离开动画 */
        /* 设置持续时间和动画函数 */

        .slide-fade-enter-active {
            transition: all .3s ease;
        }
        .slide-fade-leave-active {
            transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
        }
        .slide-fade-enter, .slide-fade-leave-to
            /* .slide-fade-leave-active for below version 2.1.8 */ {
            transform: translateX(10px);
            opacity: 0;
        }
    </style>
</head>
<body>

<div id="app">

    <input type="button" value="点击" @click="show">
    <!--        transition 包裹 被动画控制的元素 ，这个元素是官方提供的-->
    <transition>
        <h1 v-if="flag" class="r">{{msg}}</h1>
    </transition>

    <input type="button" value="点击自定义的前缀" @click="flag1=!flag1">
    <!--        transition 包裹 被动画控制的元素 ，这个元素是官方提供的-->
    <transition name="slide-fade">
        <h1 v-if="flag1">{{msg}}</h1>
    </transition>

</div>


<!--  第二步 -->
<!-- 创建Vue的 实例  -->

<script>

    // vm 表示的是 VM
    var vm = new Vue({
        el: "#app", // 表示当前 我们 new 的 这个Vue 实例需要控制那个 部分，#app 表示 控制  <div id="app"> 下面所有内容
        data: { // data 属性中，存放的是 el 中需要用到是 数据
            flag: true,
            flag1:true,
            msg: "大家伙"
        },
        methods: {
            show() {
                this.flag = !this.flag
            }
        }

    });

    // Vue 中的data 属性表示的就是 Model

</script>

</body>
</html>